/*
  公用工具函数
*/

import storage from 'good-storage'

// 获取本地存储数据
export const getStorage = (name) => {
  return storage.get(name)
}

// 设置本地存储数据
export const setStorage = (name, val) => {
  return storage.set(name, val)
}

// 删除本地存储数据
export const removeLocalStorage = (name) => {
  return storage.remove(name)
}

// 过滤时间格式
export const timeFilter = (time, format) => {
  var o = {
    'M+': time.getMonth() + 1, // month
    'd+': time.getDate(), // day
    'H+': time.getHours(), // hour
    'm+': time.getMinutes(), // minute
    's+': time.getSeconds(), // second
    'q+': Math.floor((time.getMonth() + 3) / 3), // quarter
    'S': time.getMilliseconds() // millisecond
  }

  if (/(y+)/.test(format)) {
    format = format.replace(RegExp.$1, (time.getFullYear() + '').substr(4 - RegExp.$1.length))
  }

  for (var k in o) {
    if (new RegExp('(' + k + ')').test(format)) {
      format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
    }
  }
  return format
}

// axios post 使用formData格式 的 转换方法
export function changeFormData (json) {
  var a = Object.keys(json).map(
    function (k) {
      return encodeURIComponent(k) + '=' + encodeURIComponent(json[k])
    }
  ).join('&')

  return a
}

// 深拷贝一个Object
export function cloneObj (obj) {
  if (typeof obj !== 'object') {
    return obj
  }
  var s = {}
  if (obj.constructor === Array) {
    s = []
  }
  for (var i in obj) {
    s[i] = cloneObj(obj[i])
  }
  return s
}
